More and more, people are working in the cloud. Cloud computing generally involves the use of hosted services, which are computer applications and other services that are served from a publicly available system over the internet, generally to applications that in turn execute inside web browsers or execute as web apps that are dependent on receiving data and other information from the hosted systems. Cloud computing can provide the benefit of data that follows a user wherever the user can find a network connection, such as on a home computer, a work computer, in an internet café, on a smartphone, or elsewhere. In addition, hosted services generally implement much of their functionality from the server side, so that updates and bug fixes can be rolled out more easily than in situations in which large client-side applications must be updated on many different client computers.
Web applications that execute within a web browser can have the benefits of a consistent user interface, and the ability to execute without complicated downloads of application code (e.g., applications can run simply by providing the browser with links that point to JavaScript or other similar code). However, such consistency can impose limits on flexibility in how applications are presented to users, and can also limit performance of applications.